package com.yuyou.fn.educational.vo;

import com.yuyou.fn.common.condition.annotation.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * Created by wens on 2017/3/2.
 */
public class CourseClassQueryVo {

    private Long classId;

    @FullLike
    private String classNo ;

    /**
     * 班级名称
     */
    @FullLike
    private String className;

    /**
     * 课程模板ID
     */
    private Long courseTemplateId;

    /**
     * 年级ID
     */
    private Long gradeId;


    /**
     * 科目ID
     */
    private Long subjectId;



    /**
     * 教室ID
     */
    private Long roomId;


    /**
     * 是否排教室 0:未排教室 1:已排教室
     */
    private Integer isArrangeRoom;

    /**
     * 是否排时间 0:未排时间 1:已排时间
     */
    private Integer isArrangeTime;

    /**
     * 是否排老师 0:未排教师 1:已排教师）
     */
    private Integer isArrangeTeacher;

    /**
     * 期ID
     */
    private Long periodId;

    /**  */
    private Long areaTeamId;

    /**  */
    private Long busTeamId;

    /**
     * 校区id
     */
    private Long campusId;

    /**
     * 开课时间
     */

    /**
     * 班级状态  0:未开班 1:已开班 2：已作废 3：已结课
     */
    private Integer status;

    private Long productId;


    private Integer isRecommend ;

    private Integer classType;

    private Integer segmentNo ;

    private Integer level;

    @In(name = "status",type = "Integer")
    private List<Integer> statusList;

    @FullLike
    private String teacherName;

    @In(name = "busTeamId",type = "Long")
    private List<Long> busTeamIds;

    @In(name = "progressStatus",type = "Integer")
    private List<Integer> progressStatusList;

    @In(name = "periodId",type = "Long")
    private List<Long> periodIds;

    @In(name = "gradeId",type = "Long")
    private List<Long> gradeIds;

    @In(name = "subjectId",type = "Long")
    private List<Long> subjectIds;

    @Equal
    private Integer lectureAmount;

    private BigDecimal studyingFee;

    @GreatOrEqualThan(name = "lectureAmount")
    private Integer bigOrEqualLectureAmount;

    @LessThan(name = "completedLectureAmount")
    private Integer lessCompletedLectureAmount;

    private Date startCourseTime;

    @GreatOrEqualThan(name = "startCourseTime")
    private Date greatStartCourseTime;

    @LessOrEqualThan(name = "startCourseTime")
    private Date lessStartCourseTime;

    @Ignore
    private Boolean orderByStartCourseTime=false;


    @Ignore
    private Integer weekNum;

    public List<Integer> getProgressStatusList() {
        return progressStatusList;
    }

    public void setProgressStatusList(List<Integer> progressStatusList) {
        this.progressStatusList = progressStatusList;
    }

    public Long getClassId() {
        return classId;
    }

    public void setClassId(Long classId) {
        this.classId = classId;
    }

    public String getClassNo() {
        return classNo;
    }

    public void setClassNo(String classNo) {
        this.classNo = classNo;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public Long getCourseTemplateId() {
        return courseTemplateId;
    }

    public void setCourseTemplateId(Long courseTemplateId) {
        this.courseTemplateId = courseTemplateId;
    }

    public Long getGradeId() {
        return gradeId;
    }

    public void setGradeId(Long gradeId) {
        this.gradeId = gradeId;
    }

    public Long getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Long subjectId) {
        this.subjectId = subjectId;
    }

    public Long getRoomId() {
        return roomId;
    }

    public void setRoomId(Long roomId) {
        this.roomId = roomId;
    }

    public Integer getIsArrangeRoom() {
        return isArrangeRoom;
    }

    public void setIsArrangeRoom(Integer isArrangeRoom) {
        this.isArrangeRoom = isArrangeRoom;
    }

    public Integer getIsArrangeTime() {
        return isArrangeTime;
    }

    public void setIsArrangeTime(Integer isArrangeTime) {
        this.isArrangeTime = isArrangeTime;
    }

    public Integer getIsArrangeTeacher() {
        return isArrangeTeacher;
    }

    public void setIsArrangeTeacher(Integer isArrangeTeacher) {
        this.isArrangeTeacher = isArrangeTeacher;
    }

    public Long getPeriodId() {
        return periodId;
    }

    public void setPeriodId(Long periodId) {
        this.periodId = periodId;
    }

    public Long getAreaTeamId() {
        return areaTeamId;
    }

    public void setAreaTeamId(Long areaTeamId) {
        this.areaTeamId = areaTeamId;
    }

    public Long getBusTeamId() {
        return busTeamId;
    }

    public void setBusTeamId(Long busTeamId) {
        this.busTeamId = busTeamId;
    }

    public Long getCampusId() {
        return campusId;
    }

    public void setCampusId(Long campusId) {
        this.campusId = campusId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getStartCourseTime() {
        return startCourseTime;
    }

    public void setStartCourseTime(Date startCourseTime) {
        this.startCourseTime = startCourseTime;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }


    public Integer getIsRecommend() {
        return isRecommend;
    }

    public void setIsRecommend(Integer isRecommend) {
        this.isRecommend = isRecommend;
    }

    public Integer getClassType() {
        return classType;
    }

    public void setClassType(Integer classType) {
        this.classType = classType;
    }

    public Integer getSegmentNo() {
        return segmentNo;
    }

    public void setSegmentNo(Integer segmentNo) {
        this.segmentNo = segmentNo;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public List<Integer> getStatusList() {
        return statusList;
    }

    public void setStatusList(List<Integer> statusList) {
        this.statusList = statusList;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public List<Long> getBusTeamIds() {
        return busTeamIds;
    }

    public void setBusTeamIds(List<Long> busTeamIds) {
        this.busTeamIds = busTeamIds;
    }

    public List<Long> getPeriodIds() {
        return periodIds;
    }

    public void setPeriodIds(List<Long> periodIds) {
        this.periodIds = periodIds;
    }

    public List<Long> getGradeIds() {
        return gradeIds;
    }

    public void setGradeIds(List<Long> gradeIds) {
        this.gradeIds = gradeIds;
    }

    public List<Long> getSubjectIds() {
        return subjectIds;
    }

    public void setSubjectIds(List<Long> subjectIds) {
        this.subjectIds = subjectIds;
    }

    public Integer getLectureAmount() {
        return lectureAmount;
    }

    public void setLectureAmount(Integer lectureAmount) {
        this.lectureAmount = lectureAmount;
    }

    public BigDecimal getStudyingFee() {
        return studyingFee;
    }

    public void setStudyingFee(BigDecimal studyingFee) {
        this.studyingFee = studyingFee;
    }

    public Integer getBigOrEqualLectureAmount() {
        return bigOrEqualLectureAmount;
    }

    public void setBigOrEqualLectureAmount(Integer bigOrEqualLectureAmount) {
        this.bigOrEqualLectureAmount = bigOrEqualLectureAmount;
    }

    public Integer getLessCompletedLectureAmount() {
        return lessCompletedLectureAmount;
    }

    public void setLessCompletedLectureAmount(Integer lessCompletedLectureAmount) {
        this.lessCompletedLectureAmount = lessCompletedLectureAmount;
    }

    public Date getGreatStartCourseTime() {
        return greatStartCourseTime;
    }

    public void setGreatStartCourseTime(Date greatStartCourseTime) {
        this.greatStartCourseTime = greatStartCourseTime;
    }

    public Date getLessStartCourseTime() {
        return lessStartCourseTime;
    }

    public void setLessStartCourseTime(Date lessStartCourseTime) {
        this.lessStartCourseTime = lessStartCourseTime;
    }

    public Boolean getOrderByStartCourseTime() {
        return orderByStartCourseTime;
    }

    public void setOrderByStartCourseTime(Boolean orderByStartCourseTime) {
        this.orderByStartCourseTime = orderByStartCourseTime;
    }

    public Integer getWeekNum() {
        return weekNum;
    }

    public void setWeekNum(Integer weekNum) {
        this.weekNum = weekNum;
    }
}
